#include <stdio.h>
#include <stdlib.h>

/* 打印会出现段错误，为什么？ */
int main(void)
{
	//char *p = "helloworld\n";p指向的位置是不可修改的
	//字符串存储在特定的区域内
	const char *p = "helloworld\n";
	const int a = 0x12345678;
	//volatile const int a = 0x12345678;/* 如果每次都从内存中读取的话值是正确的 */ 
	int b = 0x100;
	int *p1 = &b;
	p1[-1]  = 0x200;

	//printf("%p %p\n", &a, &b);/* 如果定义了一个值但是没有使用的话，编译器会丢掉吗？  */
	printf("the const a is %#x\n", a);

	//printf("&p = %p &a = %p\n", &p, &a);

#if 1
	//*p = 'a';
	printf("%c\n", *p);

	printf("%p %p\n", p, "helloworld\n");
	printf("%p %p\n", &p, "helloworld\n");
#endif

	return 0;
}

